package com.qyer.lxp.lxdao.price;

import com.qyer.lxp.model.price.normal.AvailableDate;
import com.qyer.lxp.model.price.normal.DailyPrice;
import com.qyer.lxp.model.price.normal.Price;
import com.qyer.lxp.model.price.parameter.AvailableDatesRequest;
import com.qyer.lxp.model.price.parameter.PeriodPriceQueryRequest;
import com.qyer.lxp.model.price.parameter.PriceQueryRequest;

import java.util.Date;
import java.util.List;

/**
 * 力行获取价格数据接口类
 * Created by jiangping on 16/5/18.
 */
public interface IPriceDao {

    /**
     * 获取销售项目某一天的价格信息接口
     *
     * 据销售项目 code 和日期查询价格信息。如果是产品更新,
     * 建议使用下 面的 getPriceByPeriod 批量获取价格。
     * @param priceQueryRequest 调取力行接口需要的参数
     * @return  返回查询条件内的价钱
     * @throws Exception
     */
    public List<Price> getPriceByDay(PriceQueryRequest priceQueryRequest) throws Exception;

    /**
     * 获取销售项目或者产品某一段时间的价格信息接口
     *
     * 根据销售项目 code 或者产品 code 和日期查询价格信息。
     * 每次最多只返回 31 天的价格数据。
     * @param periodPriceQueryRequest 调取力行接口需要的参数
     * @return  返回查询条件内的价钱
     * @throws Exception
     */
    public List<DailyPrice> getPriceByPeriod(PeriodPriceQueryRequest periodPriceQueryRequest) throws Exception;

    /**
     * 获取销售项目的可售日期数据接口
     * @param availableDatesRequest 销售code
     * @return  返回可售日期
     * @throws Exception
     */
    public List<Date> getAvailableDates(AvailableDatesRequest availableDatesRequest) throws Exception;
}
